﻿using PauloC.DTO;
using PauloC.DAL;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace PauloC.BLL
{
    public class ComentarioBLL
    {
        Context dbContext = new Context();
        //public ICollection<ComentarioDTO> Buscar(int idPostagem)
        //{

        //}
        public ComentarioDTO Buscar(int id)
        {
            ComentarioDB coment = dbContext.Comentario.First(x => x.Id == id);
            return ConverterParaDTO(coment);
        }

        public ComentarioDTO Inserir(ComentarioDTO comentario)
        {
            ComentarioDB coment = ConverterParaDB(comentario);
            dbContext.Comentario.Add(coment);
            dbContext.SaveChanges();
            return ConverterParaDTO(coment);
        }

        public void Excluir(int id)
        {
            ComentarioDB coment = dbContext.Comentario.First(x => x.Id == id);
            dbContext.Comentario.Remove(coment);
            dbContext.SaveChanges();
        }

        public void Atualizar(ComentarioDTO comentarioDTO)
        {
            ComentarioDB comentarioDB = dbContext.Comentario.First(x => x.Id == comentarioDTO.Id);
            comentarioDB.Data = comentarioDTO.Data;
            comentarioDB.Email = comentarioDTO.Email;
            comentarioDB.Nome = comentarioDTO.Nome;
            //if(comentarioDTO.Postagem!=null){
            //comentarioDB.Postagem = 
            //}
            //    if(comentarioDTO.Usuario!=null){
            //comentarioDB.Usuario = 
            //}
            dbContext.SaveChanges();
        }

        public ICollection<ComentarioDTO> Listar()
        {
            List<ComentarioDTO> list = new List<ComentarioDTO>();
            foreach (var item in dbContext.Comentario.ToList())
            {
                list.Add(ConverterParaDTO(item));
            }
            return list;
        }

        public ComentarioDTO ConverterParaDTO(ComentarioDB comentarioDB)
        {
            ComentarioDTO comentarioDTO = new ComentarioDTO();
            comentarioDTO.Data = comentarioDB.Data;
            comentarioDTO.Email = comentarioDB.Email;
            comentarioDTO.Id = comentarioDB.Id;
            comentarioDTO.Nome = comentarioDB.Nome;
            //if(comentarioDB.Postagem!=null){
            //comentarioDTO.Postagem = 
            //}
            //    if(comentarioDB.Usuario!=null){
            //comentarioDTO.Usuario = 
            //}
            return comentarioDTO;
        }

        public ComentarioDB ConverterParaDB(ComentarioDTO comentarioDTO)
        {
            ComentarioDB comentarioDB = new ComentarioDB();
            comentarioDB.Data = comentarioDTO.Data;
            comentarioDB.Email = comentarioDTO.Email;
            comentarioDB.Id = comentarioDTO.Id;
            comentarioDB.Nome = comentarioDTO.Nome;
            //if(comentarioDTO.Postagem!=null){
            //comentarioDB.Postagem = 
            //}
            //    if(comentarioDTO.Usuario!=null){
            //comentarioDB.Usuario = 
            //}
            return comentarioDB;
        }
    }
}
